package com.xigua.字符串;


import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 请从字符串中找出一个最长的不包含重复字符的子字符串，计算该最长子字符串的长度。
 * @date 2022/3/179:26
 */
public class _剑指Offer_48_最长不含重复字符的子字符串 {

    public static void main(String[] args) {
        lengthOfLongestSubstring("abcaecbb");
    }

    public static int lengthOfLongestSubstring(String s) {
        Map<Character, Integer> map = new HashMap<>();
       int ans = 0 ,tmp = 0;
        for (int i = 0; i < s.length(); i++) {
            int j = map.getOrDefault(s.charAt(i),-1);
            tmp = tmp < i-j ? tmp+1 : i-j;
            ans = Math.max(ans,tmp);
            map.put(s.charAt(i),i);
        }
        return ans;

    }
}


